package com.aaa.common.util;


import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author Xiujie Yu
 * @Date 2021-01-19
 * @Time 15:49
 * RestControllerAdvice:全局处理异常，不需要没个类自行处理异常
 * 所有的controller都会走这个配置类
 */
@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public Result<Object> exceptionHandlerMethod(Exception e){
        //打印异常栈信息
        e.printStackTrace();
        //判断是否是自定义异常，处理有别于一般异常
        if (e instanceof CustomException){
            return new Result<>(((CustomException) e).getErrorCode(),
                    ((CustomException) e).getErrorMessage());
        }
        //一般异常
        return new Result<>(ResultStatus.FAIL.getCode(),
                ResultStatus.FAIL.getMessage(),e.getClass().getName()
        );
    }
}
